A. Field of the Invention
The present invention relates generally to counters and, more particularly, to counters designed to count a large number of items.
B. Description of Related Art
Conventional networks typically include routers that route packets from one or more sources to one or more destinations. A packet is a variable size record that is transmitted through a network. A router is a network device that receives packets containing data and control information at input ports, and, based on destination or other information included in the packets, routes the packets to appropriate output ports that lead to either the next router in the packet's journey or to the packet's final destination. Routers determine the proper output port for a particular packet by evaluating header information included in the packet.
Routers have the capability to drop packets in a controlled fashion. This facility is used by network operators to control the amount of traffic entering or leaving a network on a given port. For diagnostic and record keeping purposes, it may be desirable for the router to keep a running total of the number of dropped packets, and the total number of bytes in the packets. In modern, high-performance routers, which may process millions of packets per second, the number of dropped packets can accrue quickly. Keeping track of the total number of dropped packets, and especially the total number of bytes dropped, may thus require large hardware registers (e.g., 64 bits or more) that can be time consuming to update.
Thus, there is a need in the art to be able to efficiently keep a counter capable of quickly counting a large number of items.